/*
 * c_hash.h
 *
 *  Created on: 27 Apr 2010
 *      Author: osky
 */

#ifndef c_hash_H_
#define c_hash_H_

#include "c_dato.h"
#include "c_tabla.h"
#include "c_bucket.h"
#include <stdio.h>

/* #define _DEBUG_  */

class c_hash
    {
     private:

     int modo; /* Modo en que esta abierto el archivo */
     c_tabla tabla_hash;

     FILE* handler;
     long largo_bloque;
     long largo_headear;

     /*************/
     unsigned int primer_bucket_libre;

     /*************/
/*     unsigned int f_hash (unsigned int clave);  */


    /*** SECCION PUBLICA ***/

     public:

     /* CONSTRUCTOR */
     c_hash ( const char* nombre_fisico );


     /* DESTRUCTOR */
     ~c_hash();

     /******************************************/
     /* INSERTA UN DATO                        */
     /******************************************/
     int insertar_dato ( c_dato *dato);
     /******************************************/
     /*  BORRAR UN DATO 	               */
     /******************************************/
     int eliminar_dato ( c_dato *dato);

     /******************************************/
     /*  BUSCAR UN DATO 	               */
     /******************************************/         
     int buscar_dato ( c_dato *dato);
     /******************************************/
     /*  MODIFICAR UN DATO 	  	       */
     /******************************************/
     int modificar_dato ( c_dato *dato);

     void dump(FILE *handler_txt);

};
#endif /* c_hash_H_ */

